In recent years, implementation of “cloud-based” services, high-performance computing (HPC), compute servers, and other activities employing data centers and the like have seen widespread adoption. Under a typical data center installation, a large number of servers installed in server chassis and server racks are interconnected in communication using network links (e.g., Ethernet) and various switching mechanisms. The data center systems generally rely on a “pull” paradigm where the resources may be stored at the server site and clients may be allowed to pull the resources from the server by issuing one or more requests to the server. For example, with respect to a client application such as a web browser, the client application may communicate with the server using an application-level protocol, e.g., HyperText Transfer Protocol (HTTP), built on top of the Transport Control Protocol (TCP). However, not all internet applications use TCP. Non-TCP applications are constantly growing and generating non-TCP traffic at the servers, and may include applications such as internet audio players, internet protocol (IP) telephony, videoconferencing, and real-time applications.
In some cases, performance of the network can be impacted by any number of factors, including bandwidth congestion and inefficient memory utilization. Resolving potential issues may be flow type determinative. Particularly, because TCP traffic (e.g., information related to and/or including the exchange of data packets using TCP) is a “connection-oriented” traffic and non-TCP traffic (e.g., information related to and/or including the exchange of data packets not using TCP) is a “connection-less traffic,” the server may resolve one or more issues that arise differently depending on the type of traffic that is being processed. For example, upon encountering congestion, all contending TCP flows reduce their data rates in an attempt to dissolve the congestion while non-TCP flows continue to send at their original rate even after encountering bandwidth congestion, thus resulting in potential packet loss. Storing states and information about non-TCP traffic may also be important for network firewall operations and packet authorization.
Conventional systems fail to address the diverging characteristics of non-TCP traffic in terms of memory utilization. However, determining how to store and when to expire (e.g., delete) information related to TCP and non-TCP traffic from memory may be critical for efficient memory utilization and improving network performance. For example, storing information related to non-TCP traffic in a single data structure (e.g., table) may result in resource contention if multiple processors or threads attempt to access the same resource concurrently. In contrast, storing information related to the non-TCP traffic across a large number of non-TCP traffic data structures may consume higher memory, higher central processing unit (CPU) utilization, and result in frequent creation and insertion of traffic information. In particular, consuming memory, CPU, or other system resources is crucial and of utmost importance for kernel-mode services, applications, and drivers. In kernel-mode environment, inefficient services can lead to poor system performance, failures, and crashes.